import axios from 'axios';

// 创建 axios 实例
const request = axios.create({
    baseURL: '/api', // 代理到后端服务
    timeout: 5000 // 请求超时时间
});

// 请求拦截器
request.interceptors.request.use(
    config => {
        // 在发送请求之前做些什么，比如加上 token
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    error => {
        // 对请求错误做些什么
        console.error(error);
        return Promise.reject(error);
    }
);

// 响应拦截器
request.interceptors.response.use(
    response => {
        // 对响应数据做点什么
        return response.data;
    },
    error => {
        // 对响应错误做点什么
        console.error('Response Error:', error);
        if (error.response && error.response.status === 401) {
            // token 过期或无效，跳转到登录页
            localStorage.removeItem('token');
            // 这里需要 router 实例，但在工具模块中直接引入 router 会导致循环依赖
            // 更好的做法是在路由守卫中处理
            window.location.href = '/login';
        }
        return Promise.reject(error);
    }
);

export default request;